﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using LarDosIdosos.Business.Model;
using LarDosIdosos.DataSources;

namespace LarDosIdosos
{
    public class RecuperacaoDeSenhas
    {
        /// <summary>
        /// Recupera a senha do banco pelo cpf informado e envia um email com esta senha para o dono do cpf
        /// </summary>
        /// <param name="cpf"></param>
        /// <returns></returns>
        public bool RecuperaSenha(string cpf)
        {
            DataSources.DataSourceFuncionario dataSourceFuncionario = new DataSources.DataSourceFuncionario();
            Funcionario funcionario = dataSourceFuncionario.BuscaFuncionarioPeloCPF(cpf);
            //funcionario.Senha_Funcionario = CriaNovaSenha();
            return EnviaSenha(funcionario);
        }

        /// <summary>
        /// Salva a nova senha do funcionario, osv: a nova senha deve vir no funcionario
        /// </summary>
        /// <param name="funcionario"></param>
        /// <returns></returns>
        private bool SalvaNovaSenha(Funcionario funcionario)
        {
            DataSources.DataSourceFuncionario dataSourceFuncionario = new DataSourceFuncionario();
            return dataSourceFuncionario.SalvaNovaSenha(funcionario);
        }

        private bool EnviaSenha(Funcionario funcionario)
        {
            if(funcionario != null)
            {
                return EnviaEmails.EnviaEmailDeRecuperacaoDeSenha(funcionario);
            }
            return false;
        }

        /// <summary>
        /// Cria uma guid de 6 a 10 digitos
        /// </summary>
        /// <returns></returns>
        private string CriaNovaSenha()
        {
            string guid = Guid.NewGuid().ToString().Replace("-", "");

            Random clsRan = new Random();
            Int32 tamanhoSenha = clsRan.Next(6, 10);

            string senha = "";
            for (Int32 i = 0; i <= tamanhoSenha; i++)
            {
                senha += guid.Substring(clsRan.Next(1, guid.Length), 1);
            }

            return senha;
        }
    }
}